interface
TIP
接口定义规范结构
interface Person {
name: string;
score: number;
greet(phrase: string): void;
}
let user1: Person = {
name: "Aeroxian",
score: 100,
greet(phrase: string) {
console.log("Greet: " + phrase);
},
};
class 实现 interface
TIP
接口中可以使用readonly修饰
interface Greetable {
readonly name: string;
greet(phrase: string): void;
}
class Person implements Greetable {
name: string;
score: number = 100;
constructor(n: string) {
this.name = n;
}
greet(phrase:string){
console.log(phrase+this.name);
}
}
let user1: Greetable = new Person("Aeroxian");
user1.greet('Hi there,I\'m ');
Interface as Function Type⭐
// type AddFn = (number1:number,number2:number)=>number;
interface AddFn{
(number1:number,number2:number):number;
}
let add:AddFn;
add = (number1,number2)=>number1+number2;
console.log(add(1,2));
optional properties and paramter ⭐
interface Greetable {
readonly name?: string;
greet(phrase: string): void;
}
class Person implements Greetable {
name?: string;
constructor(n?: string) {
if (n) {
this.name = n;
}
}
greet(phrase: string) {
if (this.name) {
console.log(phrase+this.name);
} else {
console.log("Hi!");
}
}
}
let user1: Greetable = new Person();
user1.greet('Hi there,I\'m '); // 输出: Hi!
